package fem2d;

import fem2.AbstractStructuralStaticDemo;
import fem2.Element;
import fem2.MaterialModel;
import fem2.MeshPart;
import fem2.element.EASStructuralElement;
import fem2.enu.EASModeType;

/**
 * slope analysis with normal element and DruckerPrager material
 * 
 * @author hbui
 * 
 */
public class SlopeStabilityDruckerPragerIncompatible extends SlopeStabilityDruckerPrager {

	public SlopeStabilityDruckerPragerIncompatible() {
		// meshFileName = "hyplas-mesh.msh"; // 8-node quadrilateral mesh
		meshFileName = "mesh1-druckerprager-incompatible.msh"; // 4-node
																// quadrilateral
																// mesh
		// meshFileName = "mesh2.msh"; // 6-node triangle mesh
		// meshFileName = "mesh3.msh"; // 3-node triangle mesh
		// meshFileName = "abaqus-mesh-druckerprager-incompatible.msh"; //
		// 8-node
		// quadrilateral
		// mesh
	}

	@Override
	public Element createElement(MeshPart mp, MaterialModel mm) {
		Element e = new EASStructuralElement(mp, mm, EASModeType.Q1E4);
		return e;
	}

	public static void main(String[] args) {
		AbstractStructuralStaticDemo demo = new SlopeStabilityDruckerPragerIncompatible();

		double[] load_factors = new double[] { 1.0, 2.0, 3.0, 4.0, 4.125, 4.1875, 4.1953125 };

		demo.run(load_factors);
	}
}
